package jp.seraph.jsmf.motion;

import jp.seraph.jsade.model.AngleVelocityCalculator;
import jp.seraph.jsade.model.DefaultAngleVelocityCalculator;
import jp.seraph.jspf.pose.DefaultPoseElement;
import jp.seraph.jspf.pose.Pose;
import jp.seraph.jspf.pose.PoseElement;

public class DefaultMotionElement extends AbstractMotionElement implements MotionElement {
    public DefaultMotionElement(String aName, Pose aPose) {
        this(aName, aPose, new DefaultAngleVelocityCalculator());
    }

    public DefaultMotionElement(String aName, Pose aPose, AngleVelocityCalculator aCalculator) {
        this(aName, aPose, aCalculator, "", 0);
    }

    public DefaultMotionElement(String aName, PoseElement aElement){
        this(aName, aElement, "", 0);
    }

    public DefaultMotionElement(String aName, Pose aPose, AngleVelocityCalculator aCalculator, String aConditionElementName, int aStartPercentage) {
        this(aName, new DefaultPoseElement(aPose, aCalculator), aConditionElementName, aStartPercentage);
    }

    public DefaultMotionElement(String aName, PoseElement aElement,String aConditionElementName, int aStartPercentage){
        super(aName, aConditionElementName, aStartPercentage);
        mPoseElement = aElement;
    }

    private PoseElement mPoseElement;

    /**
     *
     * @see jp.seraph.jsmf.motion.MotionElement#getPoseElement()
     */
    public PoseElement getPoseElement() {
        return mPoseElement;
    }
}
